package com.test.test_rest.blockchain_data.domain.gen;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class SuperConfStrategy implements Serializable {
    private Integer id;

    /**
     * 任务ID
     */
    private Integer jobId;

    /**
     * 交易币对名称
     */
    private String symbol;

    /**
     * 最小仓位数量
     */
    private BigDecimal minAmount;

    /**
     * 止盈比例 1.2
     */
    private BigDecimal stopProfit;

    /**
     * 止盈回调 0.3
     */
    private BigDecimal stopProfitCallback;

    /**
     * 上涨补仓比例 1.3
     */
    private BigDecimal upWeight;

    /**
     * 上涨补仓递减 0.1
     */
    private BigDecimal upDecrease;

    /**
     * 上涨金额比例
     */
    private BigDecimal upPriceIncremental;

    /**
     * 上涨补仓最低 0.5
     */
    private BigDecimal upMin;

    /**
     * 补仓跌幅 2.1
     */
    private BigDecimal downWeight;

    /**
     * 补仓回调 0.5
     */
    private BigDecimal downCallback;

    /**
     * 下跌补仓递增比例 0.2
     */
    private BigDecimal downIncremental;

    /**
     * 下跌补仓金额比例
     */
    private BigDecimal downPriceIncremental;

    /**
     * 下跌补仓最高比例 30.0
     */
    private BigDecimal downMax;

    /**
     * 下跌止损比例 0.25
     */
    private BigDecimal stopLose;

    private Date createTime;

    private Date updateTime;

    /**
     * 首单金额比例
     */
    private BigDecimal firstPricePercent;

    /**
     * 任务子ID
     */
    private Integer taskId;

    private static final long serialVersionUID = 1L;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 任务ID
     */
    public Integer getJobId() {
        return jobId;
    }

    /**
     * 任务ID
     */
    public void setJobId(Integer jobId) {
        this.jobId = jobId;
    }

    /**
     * 交易币对名称
     */
    public String getSymbol() {
        return symbol;
    }

    /**
     * 交易币对名称
     */
    public void setSymbol(String symbol) {
        this.symbol = symbol;
    }

    /**
     * 最小仓位数量
     */
    public BigDecimal getMinAmount() {
        return minAmount;
    }

    /**
     * 最小仓位数量
     */
    public void setMinAmount(BigDecimal minAmount) {
        this.minAmount = minAmount;
    }

    /**
     * 止盈比例 1.2
     */
    public BigDecimal getStopProfit() {
        return stopProfit;
    }

    /**
     * 止盈比例 1.2
     */
    public void setStopProfit(BigDecimal stopProfit) {
        this.stopProfit = stopProfit;
    }

    /**
     * 止盈回调 0.3
     */
    public BigDecimal getStopProfitCallback() {
        return stopProfitCallback;
    }

    /**
     * 止盈回调 0.3
     */
    public void setStopProfitCallback(BigDecimal stopProfitCallback) {
        this.stopProfitCallback = stopProfitCallback;
    }

    /**
     * 上涨补仓比例 1.3
     */
    public BigDecimal getUpWeight() {
        return upWeight;
    }

    /**
     * 上涨补仓比例 1.3
     */
    public void setUpWeight(BigDecimal upWeight) {
        this.upWeight = upWeight;
    }

    /**
     * 上涨补仓递减 0.1
     */
    public BigDecimal getUpDecrease() {
        return upDecrease;
    }

    /**
     * 上涨补仓递减 0.1
     */
    public void setUpDecrease(BigDecimal upDecrease) {
        this.upDecrease = upDecrease;
    }

    /**
     * 上涨金额比例
     */
    public BigDecimal getUpPriceIncremental() {
        return upPriceIncremental;
    }

    /**
     * 上涨金额比例
     */
    public void setUpPriceIncremental(BigDecimal upPriceIncremental) {
        this.upPriceIncremental = upPriceIncremental;
    }

    /**
     * 上涨补仓最低 0.5
     */
    public BigDecimal getUpMin() {
        return upMin;
    }

    /**
     * 上涨补仓最低 0.5
     */
    public void setUpMin(BigDecimal upMin) {
        this.upMin = upMin;
    }

    /**
     * 补仓跌幅 2.1
     */
    public BigDecimal getDownWeight() {
        return downWeight;
    }

    /**
     * 补仓跌幅 2.1
     */
    public void setDownWeight(BigDecimal downWeight) {
        this.downWeight = downWeight;
    }

    /**
     * 补仓回调 0.5
     */
    public BigDecimal getDownCallback() {
        return downCallback;
    }

    /**
     * 补仓回调 0.5
     */
    public void setDownCallback(BigDecimal downCallback) {
        this.downCallback = downCallback;
    }

    /**
     * 下跌补仓递增比例 0.2
     */
    public BigDecimal getDownIncremental() {
        return downIncremental;
    }

    /**
     * 下跌补仓递增比例 0.2
     */
    public void setDownIncremental(BigDecimal downIncremental) {
        this.downIncremental = downIncremental;
    }

    /**
     * 下跌补仓金额比例
     */
    public BigDecimal getDownPriceIncremental() {
        return downPriceIncremental;
    }

    /**
     * 下跌补仓金额比例
     */
    public void setDownPriceIncremental(BigDecimal downPriceIncremental) {
        this.downPriceIncremental = downPriceIncremental;
    }

    /**
     * 下跌补仓最高比例 30.0
     */
    public BigDecimal getDownMax() {
        return downMax;
    }

    /**
     * 下跌补仓最高比例 30.0
     */
    public void setDownMax(BigDecimal downMax) {
        this.downMax = downMax;
    }

    /**
     * 下跌止损比例 0.25
     */
    public BigDecimal getStopLose() {
        return stopLose;
    }

    /**
     * 下跌止损比例 0.25
     */
    public void setStopLose(BigDecimal stopLose) {
        this.stopLose = stopLose;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 首单金额比例
     */
    public BigDecimal getFirstPricePercent() {
        return firstPricePercent;
    }

    /**
     * 首单金额比例
     */
    public void setFirstPricePercent(BigDecimal firstPricePercent) {
        this.firstPricePercent = firstPricePercent;
    }

    /**
     * 任务子ID
     */
    public Integer getTaskId() {
        return taskId;
    }

    /**
     * 任务子ID
     */
    public void setTaskId(Integer taskId) {
        this.taskId = taskId;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", jobId=").append(jobId);
        sb.append(", symbol=").append(symbol);
        sb.append(", minAmount=").append(minAmount);
        sb.append(", stopProfit=").append(stopProfit);
        sb.append(", stopProfitCallback=").append(stopProfitCallback);
        sb.append(", upWeight=").append(upWeight);
        sb.append(", upDecrease=").append(upDecrease);
        sb.append(", upPriceIncremental=").append(upPriceIncremental);
        sb.append(", upMin=").append(upMin);
        sb.append(", downWeight=").append(downWeight);
        sb.append(", downCallback=").append(downCallback);
        sb.append(", downIncremental=").append(downIncremental);
        sb.append(", downPriceIncremental=").append(downPriceIncremental);
        sb.append(", downMax=").append(downMax);
        sb.append(", stopLose=").append(stopLose);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", firstPricePercent=").append(firstPricePercent);
        sb.append(", taskId=").append(taskId);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SuperConfStrategy other = (SuperConfStrategy) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getJobId() == null ? other.getJobId() == null : this.getJobId().equals(other.getJobId()))
            && (this.getSymbol() == null ? other.getSymbol() == null : this.getSymbol().equals(other.getSymbol()))
            && (this.getMinAmount() == null ? other.getMinAmount() == null : this.getMinAmount().equals(other.getMinAmount()))
            && (this.getStopProfit() == null ? other.getStopProfit() == null : this.getStopProfit().equals(other.getStopProfit()))
            && (this.getStopProfitCallback() == null ? other.getStopProfitCallback() == null : this.getStopProfitCallback().equals(other.getStopProfitCallback()))
            && (this.getUpWeight() == null ? other.getUpWeight() == null : this.getUpWeight().equals(other.getUpWeight()))
            && (this.getUpDecrease() == null ? other.getUpDecrease() == null : this.getUpDecrease().equals(other.getUpDecrease()))
            && (this.getUpPriceIncremental() == null ? other.getUpPriceIncremental() == null : this.getUpPriceIncremental().equals(other.getUpPriceIncremental()))
            && (this.getUpMin() == null ? other.getUpMin() == null : this.getUpMin().equals(other.getUpMin()))
            && (this.getDownWeight() == null ? other.getDownWeight() == null : this.getDownWeight().equals(other.getDownWeight()))
            && (this.getDownCallback() == null ? other.getDownCallback() == null : this.getDownCallback().equals(other.getDownCallback()))
            && (this.getDownIncremental() == null ? other.getDownIncremental() == null : this.getDownIncremental().equals(other.getDownIncremental()))
            && (this.getDownPriceIncremental() == null ? other.getDownPriceIncremental() == null : this.getDownPriceIncremental().equals(other.getDownPriceIncremental()))
            && (this.getDownMax() == null ? other.getDownMax() == null : this.getDownMax().equals(other.getDownMax()))
            && (this.getStopLose() == null ? other.getStopLose() == null : this.getStopLose().equals(other.getStopLose()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getFirstPricePercent() == null ? other.getFirstPricePercent() == null : this.getFirstPricePercent().equals(other.getFirstPricePercent()))
            && (this.getTaskId() == null ? other.getTaskId() == null : this.getTaskId().equals(other.getTaskId()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getJobId() == null) ? 0 : getJobId().hashCode());
        result = prime * result + ((getSymbol() == null) ? 0 : getSymbol().hashCode());
        result = prime * result + ((getMinAmount() == null) ? 0 : getMinAmount().hashCode());
        result = prime * result + ((getStopProfit() == null) ? 0 : getStopProfit().hashCode());
        result = prime * result + ((getStopProfitCallback() == null) ? 0 : getStopProfitCallback().hashCode());
        result = prime * result + ((getUpWeight() == null) ? 0 : getUpWeight().hashCode());
        result = prime * result + ((getUpDecrease() == null) ? 0 : getUpDecrease().hashCode());
        result = prime * result + ((getUpPriceIncremental() == null) ? 0 : getUpPriceIncremental().hashCode());
        result = prime * result + ((getUpMin() == null) ? 0 : getUpMin().hashCode());
        result = prime * result + ((getDownWeight() == null) ? 0 : getDownWeight().hashCode());
        result = prime * result + ((getDownCallback() == null) ? 0 : getDownCallback().hashCode());
        result = prime * result + ((getDownIncremental() == null) ? 0 : getDownIncremental().hashCode());
        result = prime * result + ((getDownPriceIncremental() == null) ? 0 : getDownPriceIncremental().hashCode());
        result = prime * result + ((getDownMax() == null) ? 0 : getDownMax().hashCode());
        result = prime * result + ((getStopLose() == null) ? 0 : getStopLose().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getFirstPricePercent() == null) ? 0 : getFirstPricePercent().hashCode());
        result = prime * result + ((getTaskId() == null) ? 0 : getTaskId().hashCode());
        return result;
    }
}